home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist6.3 / gl_dev.idb / usr / share / src / OpenGL / toolkits / libtk / tk.h.z / tk.h
Encoding:
C/C++ Source or Header  |  1996-12-06  |  4.8 KB  |  222 lines

  1. #include <GL/gl.h>
  2. #include <GL/glu.h>
  3.  
  4. /*
  5. ** Nano Window Toolkit.
  6. */
  7.  
  8. /*
  9. ** Window Types
  10. */
  11.  
  12. #define TK_RGB        0
  13. #define TK_INDEX    1
  14. #define TK_SINGLE    0
  15. #define TK_DOUBLE    2
  16. #define TK_DIRECT    0
  17. #define TK_INDIRECT    4
  18. #define TK_ACCUM    8
  19. #define TK_ALPHA    16
  20. #define TK_DEPTH    32
  21. #define TK_OVERLAY    64
  22. #define TK_UNDERLAY    128
  23. #define TK_STENCIL    512
  24.  
  25. /*
  26. ** Display Mode Selection Criteria
  27. */
  28.  
  29. enum {
  30.     TK_USE_ID = 1,
  31.     TK_EXACT_MATCH,
  32.     TK_MINIMUM_CRITERIA
  33. };
  34.  
  35. /* 
  36. ** Window Masks
  37. */
  38.  
  39. #define TK_IS_RGB(x)        (((x) & TK_INDEX) == 0)
  40. #define TK_IS_INDEX(x)        (((x) & TK_INDEX) != 0)
  41. #define TK_IS_SINGLE(x)        (((x) & TK_DOUBLE) == 0)
  42. #define TK_IS_DOUBLE(x)        (((x) & TK_DOUBLE) != 0)
  43. #define TK_IS_DIRECT(x)        (((x) & TK_INDIRECT) == 0)
  44. #define TK_IS_INDIRECT(x)    (((x) & TK_INDIRECT) != 0)
  45. #define TK_HAS_ACCUM(x)        (((x) & TK_ACCUM) != 0)
  46. #define TK_HAS_ALPHA(x)        (((x) & TK_ALPHA) != 0)
  47. #define TK_HAS_DEPTH(x)        (((x) & TK_DEPTH) != 0)
  48. #define TK_HAS_OVERLAY(x)    (((x) & TK_OVERLAY) != 0)
  49. #define TK_HAS_UNDERLAY(x)    (((x) & TK_UNDERLAY) != 0)
  50. #define TK_HAS_STENCIL(x)    (((x) & TK_STENCIL) != 0)
  51.  
  52. /*
  53. ** Windowing System Specific Gets
  54. */
  55.  
  56. enum {
  57.     TK_X_DISPLAY = 1,
  58.     TK_X_WINDOW,
  59.     TK_X_SCREEN,
  60.     TK_CONTEXT
  61. };
  62.  
  63. /*
  64. ** Event Status
  65. */
  66.  
  67. #define    TK_LEFTBUTTON        1
  68. #define    TK_RIGHTBUTTON        2
  69. #define    TK_MIDDLEBUTTON        4
  70. #define    TK_SHIFT        1
  71. #define    TK_CONTROL        2
  72.  
  73. /* 
  74. ** Key Codes
  75. */
  76.  
  77. #define TK_RETURN        0x0D
  78. #define TK_ESCAPE        0x1B
  79. #define TK_SPACE        0x20
  80. #define TK_LEFT            0x25
  81. #define TK_UP            0x26
  82. #define TK_RIGHT        0x27
  83. #define TK_DOWN            0x28
  84. #define TK_A            'A'
  85. #define TK_B            'B'
  86. #define TK_C            'C'
  87. #define TK_D            'D'
  88. #define TK_E            'E'
  89. #define TK_F            'F'
  90. #define TK_G            'G'
  91. #define TK_H            'H'
  92. #define TK_I            'I'
  93. #define TK_J            'J'
  94. #define TK_K            'K'
  95. #define TK_L            'L'
  96. #define TK_M            'M'
  97. #define TK_N            'N'
  98. #define TK_O            'O'
  99. #define TK_P            'P'
  100. #define TK_Q            'Q'
  101. #define TK_R            'R'
  102. #define TK_S            'S'
  103. #define TK_T            'T'
  104. #define TK_U            'U'
  105. #define TK_V            'V'
  106. #define TK_W            'W'
  107. #define TK_X            'X'
  108. #define TK_Y            'Y'
  109. #define TK_Z            'Z'
  110. #define TK_a            'a'
  111. #define TK_b            'b'
  112. #define TK_c            'c'
  113. #define TK_d            'd'
  114. #define TK_e            'e'
  115. #define TK_f            'f'
  116. #define TK_g            'g'
  117. #define TK_h            'h'
  118. #define TK_i            'i'
  119. #define TK_j            'j'
  120. #define TK_k            'k'
  121. #define TK_l            'l'
  122. #define TK_m            'm'
  123. #define TK_n            'n'
  124. #define TK_o            'o'
  125. #define TK_p            'p'
  126. #define TK_q            'q'
  127. #define TK_r            'r'
  128. #define TK_s            's'
  129. #define TK_t            't'
  130. #define TK_u            'u'
  131. #define TK_v            'v'
  132. #define TK_w            'w'
  133. #define TK_x            'x'
  134. #define TK_y            'y'
  135. #define TK_z            'z'
  136. #define TK_0            '0'
  137. #define TK_1            '1'
  138. #define TK_2            '2'
  139. #define TK_3            '3'
  140. #define TK_4            '4'
  141. #define TK_5            '5'
  142. #define TK_6            '6'
  143. #define TK_7            '7'
  144. #define TK_8            '8'
  145. #define TK_9            '9'
  146.  
  147. /*
  148. ** Color Macros
  149. */
  150.  
  151. enum {
  152.     TK_BLACK = 0,
  153.     TK_RED,
  154.     TK_GREEN,
  155.     TK_YELLOW,
  156.     TK_BLUE,
  157.     TK_MAGENTA,
  158.     TK_CYAN,
  159.     TK_WHITE
  160. };
  161.  
  162. extern float tkRGBMap[8][3];
  163.  
  164. #define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
  165.                    glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))
  166.  
  167. /*
  168. ** Prototypes
  169. */
  170.  
  171. extern GLenum tkInitDisplay(void);
  172. extern void tkInitDisplayMode(GLenum);
  173. extern void tkInitDisplayModePolicy(GLenum type);
  174. extern GLenum tkInitDisplayModeID(GLint id);
  175. extern void tkInitPosition(int, int, int, int);
  176. extern GLenum tkInitWindow(char *);
  177. extern void tkCloseWindow(void);
  178. extern void tkQuit(void);
  179.  
  180. extern GLenum tkSetWindowLevel(GLenum);
  181. extern void tkSwapBuffers(void);
  182.  
  183. extern void tkExec(void);
  184. extern void tkExposeFunc(void (*)(int, int));
  185. extern void tkReshapeFunc(void (*)(int, int));
  186. extern void tkDisplayFunc(void (*)(void));
  187. extern void tkKeyDownFunc(GLenum (*)(int, GLenum));
  188. extern void tkMouseDownFunc(GLenum (*)(int, int, GLenum));
  189. extern void tkMouseUpFunc(GLenum (*)(int, int, GLenum));
  190. extern void tkMouseMoveFunc(GLenum (*)(int, int, GLenum));
  191. extern void tkIdleFunc(void (*)(void));
  192.  
  193. extern int tkGetColorMapSize(void);
  194. extern void tkGetMouseLoc(int *, int *);
  195. extern void tkGetSystem(GLenum, void *);
  196. extern GLenum tkGetDisplayModePolicy(void);
  197. extern GLint tkGetDisplayModeID(void);
  198. extern GLenum tkGetDisplayMode(void);
  199.  
  200. extern void tkSetOneColor(int, float, float, float);
  201. extern void tkSetFogRamp(int, int);
  202. extern void tkSetGreyRamp(void);
  203. extern void tkSetRGBMap(int, float *);
  204. extern void tkSetOverlayMap(int, float *);
  205.  
  206. extern void tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum,
  207.             GLint, GLint);
  208. extern void tkSetCursor(GLint);
  209.  
  210. extern void tkWireSphere(GLuint, float);
  211. extern void tkSolidSphere(GLuint, float);
  212. extern void tkWireCube(GLuint, float);
  213. extern void tkSolidCube(GLuint, float);
  214. extern void tkWireBox(GLuint, float, float, float);
  215. extern void tkSolidBox(GLuint, float, float, float);
  216. extern void tkWireTorus(GLuint, float, float);
  217. extern void tkSolidTorus(GLuint, float, float);
  218. extern void tkWireCylinder(GLuint, float, float);
  219. extern void tkSolidCylinder(GLuint, float, float);
  220. extern void tkWireCone(GLuint, float, float);
  221. extern void tkSolidCone(GLuint, float, float);
  222.